package ace.cmp.core.model;

import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author caspar
 * @date 2023/4/14 15:45
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PageResultDto<T> {

  /**
   * 返回数据
   */
  @Builder.Default
  private List<T> data = new ArrayList<>(10);

  /**
   * 接口返回信息 总记录数
   */
  @Builder.Default
  private long total = 0;

  /**
   * 接口返回信息 总页数
   */
  @Builder.Default
  private long totalPage = 0;

  /**
   * 有没有下一页
   */
  @Builder.Default
  private Boolean hasNext = false;

  /**
   * 有没有上一页
   */
  @Builder.Default
  private Boolean hasPrevious = false;

  /**
   * 页数
   */
  private Integer page = 0;
}
